#pragma once

#include "apdu.h"
#include "apdu_mgr_base.h"
#include "../apdu.def/apdu_defs.h"

class apdu_factory_manager : public apdu_mgr_base
{
public:
	apdu_factory_manager(void);
	~apdu_factory_manager(void);

public:
	apdu * create_apdu_format( cosDevInfo * devInfo, unsigned char devAuthKey[32], 
					int retryTimes, int leftTimes, int isHighLevel);

	apdu * create_apdu_get_fs_maxcap();
	
	apdu * create_apdu_get_hw_sn();

	apdu * create_apdu_back_to_bootloader(char * password);

	apdu * create_apdu_get_dev_status();

	apdu * create_apdu_read_oeminfo(int offset, int length);

	apdu * create_apdu_write_oeminfo(int offset, unsigned char * info, int info_len);

	apdu * create_apdu_lock_cos(unsigned char * password, int pwd_len);


private:

};
